package com.bilibili.service;

import java.util.List;
import java.util.Map;

import com.bilibili.entity.Follow;
import com.bilibili.entity.Page;
import com.bilibili.entity.User;

public interface UserService {
	
	/**
	 * 查询用户所有信息
	 * @param userId	用户id
	 * @return	用户对象
	 */
	User queryUserByUserId(int userId);
	
	/**
	 * 查询所有我的关注
	 * @param userId	用户id
	 * @return	所有被我关注的用户集合
	 */
	Page<User> queryAllMyAttention(User user,int pageNum,int pageSize);
	
	/**
	 * 查询所有关注的我
	 * @param userId	用户id
	 * @return	所有关注我的用户集合
	 */
	Page<User> queryAllAttentionToMe(User user,int pageNum,int pageSize);
	
	/**
	 * 查询两个人是否互相关注
	 * @param follow	关注对象
	 * @return	用户对象
	 */
	User queryFollowIsMutual(Follow follow);
	
	/**
	 * 修改用户头像
	 * @param user	用户对象
	 * @return	true/fals
	 */
	boolean updataHeadImg(User user);
	/**
	 * 用户注册
	 * @param user
	 * @return
	 * 	1 注册成功
	 *  0 注册失败
	 *  -1 用户名重复
	 */
	int userRegister(User user);
	
	
	Map<String,Object> userLogin(String username,String password);
	User getUserById(int userId);
	
	public Page<User> SelectAllUser(int pageNum,int pageSize);
	public List<User> SelectUserByType(int type);
	public List<User> SelectUserByRole(int role,int type);
	public List<User> SelectUserByUserId(int userId);
	public int updateByUId(int userId);
	public int reupdateByUId(int userId);
	public int resetCode(int userId);
	
	User selectUpAllInfo(int videoId);
}
